package com.atxiaodei.kabudashejimoshi.策略模式;

/**
 * @ClassName Order
 * @Deacription 创建订单
 * @Author 卡布达
 * @Date 2021/10/13 22:08
 * @Version 1.0
 **/
public class Order {

    private String uid;
    private String orderId;
    private double amount;

    public Order(String uid,String orderId,double amount){
        this.uid = uid;
        this.orderId = orderId;
        this.amount = amount;
    }

    //完美地解决了 switch 的过程，不需要在代码逻辑中写 switch 了
    //更不需要写 if else if
    public PayState pay(){
        return pay(PayStrategy.DEFAULT_PAY);
    }

    public PayState pay(String payKey){
        Payment payment = PayStrategy.get(payKey);
        System.out.println("欢迎使用" + payment.getName());
        System.out.println("本次交易金额为：" + amount + "，开始扣款...");
        return payment.pay(uid,amount);
    }
}
